Ext.onReady(function(){
	
	/**
	 * 测试数据
	 */
	var testData=[
		['大漠1',25,'你猜？','我不告诉你','电信','88403922',1],
		['大漠2',25,'你猜？','我不告诉你','电信','88403922',2],
		['大漠3',25,'你猜？','我不告诉你','电信','88403922',3],
		['大漠4',25,'你猜？','我不告诉你','电信','88403922',4],
		['大漠5',25,'你猜？','我不告诉你','电信','88403922',5],
		['大漠6',25,'你猜？','我不告诉你','电信','88403922',6],
		['大漠7',25,'你猜？','我不告诉你','电信','88403922',7],
		['大漠8',25,'你猜？','我不告诉你','电信','88403922',8],
		['大漠9',25,'你猜？','我不告诉你','电信','88403922',9],
		['大漠10',25,'你猜？','我不告诉你','电信','88403922',10]
	];
	
	/**
	 * 数据格式器
	 */
	var reader=new Ext.data.ArrayReader({},[
		{name:'name',type:'string'},
		{name:'age',type:'int'},
		{name:'work',type:'string'},
		{name:'company',type:'string'},
		{name:'industry',type:'string'},
		{name:'QQ',type:'string'},
		{name:'id',type:'int'}
	])
	
	/**
	 * 数据缓存器
	 */
	var store=new Ext.data.Store({
		reader:reader,
		data:testData
	})
	
	/**
	 * 行选择器
	 */
	var sm = new Ext.grid.CheckboxSelectionModel();
	
	/**
	 * 自动行号
	 */
	var rowNum=new Ext.grid.RowNumberer({
		header:'序号',
		width:30
	});
	
	/**
	 * 数据列模型
	 */
	var cm=new Ext.grid.ColumnModel([
		sm,
		rowNum,
		{header: "姓名", dataIndex:'name',width: 100, sortable: true},
		{header: "年龄", dataIndex:'age',width: 50, sortable: true},
		{header: "工作", dataIndex:'work',width: 150, sortable: true},
		{header: "公司", dataIndex:'company',width: 100, sortable: true},
		{header: "所属行业", dataIndex:'industry',width: 80, sortable: true},
		{header: "QQ群", dataIndex:'QQ',width:150, sortable: true},
	  	{header: "操作", 
	  	 dataIndex:'name',
	  	 width:150, 
	  	 sortable: true,
	  	 renderer:function(v,meta,record){
          	var resultStr = "";
          	var formatStr = "<a href='javascript:void({2});' onclick='javscript:return false;' class='{1}'>{0}</a>";
          	resultStr += String.format(formatStr,'详细','alarm_detail',record.id);
          	resultStr += ' | ' + String.format(formatStr,'签阅','alarm_check',record.id);
          	resultStr += ' | ' + String.format(formatStr,'删除','alarm_delete',record.id);
            return "<div class='controlBtn'>"+resultStr+"</div>";
          }
	  	}
	]);
	
	
	/**
	 * 分页工具条
	 */
	var pagingToolBar=new Ext.PagingToolbar({
		pageSize:10,
		store:store,
		displayInfo:true,
		displayMsg: '显示第 <em>{0}</em> 条到 <em>{1}</em> 条记录，一共 <em>{2}</em> 条',
        emptyMsg: "没有记录"
	})
	
	
	/**
	 * 数据展示面板
	 */
	var addRecord=function(){
		var newRecord = new Ext.data.Record({
	    	name:'大漠',
	    	age:'',
	    	work:'',
	    	company:'',
	    	industry:'',
	    	QQ:''
		});
		store.add(newRecord);
	}
	var delRecord=function(){
		var selArr=sm.getSelections();
    	if(!selArr.length){
    		alert("请选中需要删除的行");
    		return;
    	}
    	for(var i=0;i<selArr.length;i++){
    		var record=selArr[i];
    		store.remove(record);
    	}
	}
	
	//工具方法：将选中记录上移一行
    var moveUp=function(){
    	var selArr=sm.getSelections();//选中的record数组
    	var firstSel=sm.getSelected();//选中的第一行
    	if(selArr.length==0){
    		alert('请选中需要移动的行');
    		return;
    	}else if(store.indexOf(firstSel)==0){
    		return;
    	}
    	//移动元素
    	for(var i=0;i<selArr.length;i++){
    		var record=selArr[i];
    		var rIndex=store.indexOf(record);
    		store.remove(record);
    		store.insert(rIndex-1,record);
    	}
    	//重建record数组
    	var cache =new Array();
        for (var i=0; i<store.getCount(); i++) {
            cache.push(store.getAt(i));
        }
        store.removeAll();
        store.add(cache);
        
    	sm.selectRecords(selArr);
    }
    //工具方法：将选中记录下移一行
    var moveDown=function(){
    	var selArr=sm.getSelections();//选中的record数组
    	if(selArr.length==0){
    		alert("请选中需要移动的行");
    		return;
    	}
    	var lastSel=selArr[selArr.length-1];//选中的最后一行
    	if(store.indexOf(lastSel)==(store.getCount()-1)){
    		return;
    	}
    	//移动元素
    	for(var i=0;i<selArr.length;i++){
    		var record=selArr[i];
    		var rIndex=store.indexOf(record);
    		store.remove(record);
    		store.insert(rIndex+1,record);
    	}
    	//重建record数组
    	var cache =new Array();
        for (var i=0; i<store.getCount(); i++) {
            cache.push(store.getAt(i));
        }
        store.removeAll();
        store.add(cache);
        
    	sm.selectRecords(selArr);
    }
    //工具方法：移动选中的行到最上
    var moveTop=function(){
    	var selArr=sm.getSelections();//选中的record数组
    	var firstSel=sm.getSelected();//选中的第一行
    	if(selArr.length==0){
    		alert("请选中需要移动的行");
    		return;
    	}else if(store.indexOf(firstSel)==0){
    		return;
    	}
    	var firstIndex=store.indexOf(firstSel);
    	//移动元素
    	for(var i=0;i<selArr.length;i++){
    		var record=selArr[i];
    		var rIndex=store.indexOf(record);
    		store.remove(record);
    		store.insert((rIndex-firstIndex),record);
    	}
    	//重建record数组
    	var cache =new Array();
        for (var i=0; i<store.getCount(); i++) {
            cache.push(store.getAt(i));
        }
        store.removeAll();
        store.add(cache);
        
    	sm.selectRecords(selArr);
    }
    //工具方法：移动选中的行到最下
    var moveBottom=function(){
    	var selArr=sm.getSelections();//选中的record数组
    	if(selArr.length==0){
    		alert("请选中需要移动的行");
    		return;
    	}
    	var lastSel=selArr[selArr.length-1];//选中的最后一行
    	var lastIndex=store.indexOf(lastSel);
    	var offset=store.getCount()-lastIndex-1;//计算选中的最后一行到末行的偏移量
    	if(lastIndex==(store.getCount()-1)){
    		return;
    	}
    	//移动元素
    	for(var i=0;i<selArr.length;i++){
    		var record=selArr[i];
    		var rIndex=store.indexOf(record);
    		store.remove(record);
    		store.insert((rIndex+offset),record);
    	}
    	//重建record数组
    	var cache =new Array();
        for (var i=0; i<store.getCount(); i++) {
            cache.push(store.getAt(i));
        }
        store.removeAll();
        store.add(cache);
        
    	sm.selectRecords(selArr);
    }
    
	var gridPanel=new Ext.grid.GridPanel({
		title:'',
		store:store,
		cm:cm,
		sm:sm,
		tbar:[
			{
				text:'添加',
				iconCls:'add',
				handler:addRecord
			},
			'-',
			{
				text:'删除',
				iconCls:'delete',
				handler:delRecord
			},
			'-',
			{
				text:'上移',
				iconCls:'up',
				handler:moveUp
			},
			'-',
			{
				text:'下移',
				iconCls:'down',
				handler:moveDown
			},
			'-',
			{
				text:'移至最上',
				iconCls:'top',
				handler:moveTop
			},
			'-',
			{
				text:'移至最下',
				iconCls:'bottom',
				handler:moveBottom
			}
		],
		bbar:[pagingToolBar]
	});
	
	
	/**
	 * 弹出窗体
	 */
	var win=new Ext.Window({
		title:'标准数据展示界面2',
		width:850,
		height:450,
		buttonAlign:'right',
		layout:'fit',
		items:[gridPanel],
		buttons:[
			{
				text:'关闭',
				handler:function(){
					win.close();
				}
			},
			{
				text:'提交',
				handler:function(){
					Ext.Msg.alert('温馨提示','真的要提交吗？');
				}
			}
		]
	});
	win.show();
})